import { Component, App } from 'vue'

/* 全局组件引入 */
import osTabs from './os-tabs/index.vue'

/* 全局挂载对象方法引入 */
import Http from '@/utils/http'

/* iconfont 图标引入 */
import addIconfontLink from '@/utils/add-iconfont'

/* 导入webgl CoolGL 资源 */
// var CooGL = require('../webgl/CooGL.js')
// import * as CooGL from '../webgl/CooGL.js'

/**
 * 组装所需全局公共组件注册
 */
const components: Component = {
  'os-tabs': osTabs,
}

/**
 * 组装所需全局挂载对象方法
 */
const globalProperties: any = {
  '$http': new Http()
}
/**
 * 全局安装
 * @param app 
 */
const installElement = (app: App) => {
  // 循环组装公共全局组件
  Object.keys(components).forEach(el => {
    app.component(el, components[el])
  })
  // 循环挂载全局对象方法
  Object.keys(globalProperties).forEach(el => {
    app.config.globalProperties[el] = globalProperties[el]
  })
  // 引入iconfont
  addIconfontLink('font_2301378_s6qk20qte38')
}
export default installElement
